#ifndef TCPCLIENT_H
#define TCPCLIENT_H

#include <WiFi.h>
#include <Arduino.h>

class TcpClient {
  private:
    // WiFi 和服务器配置
    const char* _ssid;
    const char* _password;
    const char* _serverHost;
    uint16_t _serverPort;

    // 客户端和状态
    WiFiClient _client;
    bool _isConnected = false;
    unsigned long _lastAttemptTime = 0;

    // 时间间隔常量
    const unsigned long _reconnectInterval = 5000;   // 重连间隔(ms)

    // 私有方法
    bool _connectWiFi();
    bool _connectServer();
    bool _sendMessage(const String& message);
    String _readResponse();

  public:
    // 构造函数
    TcpClient(const char* ssid, const char* password, const char* serverHost, uint16_t serverPort);

    // 初始化
    void begin();

    // 主循环
    void loop();

    // 发送电位器数据
    bool sendPotentiometerData(uint8_t channel, uint16_t value);
    
    // 发送多个电位器数据
    bool sendMultiplePotentiometerData(uint16_t values[16]);

    // 获取连接状态
    bool isConnected() {
      return _client.connected();
    }
};

#endif
    